package org.hd.userlist.dao;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;

import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
@Mapper
public interface UserListDao {

    //查询所有的用户及其角色权限等信息
    List<Map<String,String>> getUserList();

    /***
     * 改变用户状态
     * @param status
     * @return
     */
    boolean changeUserStatus(@Param("username") String username, @Param("status") int status);

    /**
     * 获取角色列表
     * @return
     */
    List<Map<String,String>> getRoleList();

    /***
     * 修改用户角色
     * @param username
     * @param roleName
     * @return
     */
    boolean changeUserRole(@Param("username") String username, @Param("roleName") String roleName);

    /**
     * 看能否查到用户，判断是否重复
     * @param username
     * @return
     */
    String checkUser(@Param("username") String username);

    /***
     * 插入新的用户
     * @param username
     * @param password

     * @return
     */
    boolean insertUser(
            @Param("userId") String userId,
            @Param("username") String username,
            @Param("password") String password

    );

    /***
     * 插入角色
     * @param role
     * @return
     */
    boolean insertRole(
            @Param("username") String username,
            @Param("role") String role
    );

    /***
     * 删除用户
     * @param username
     * @return
     */
    int deleteUserName(@Param("username") String username);

    /***
     * 删除用户的角色关联
     * @param username
     * @return
     */
    int deleteUserRole(@Param("username") String username);
}
